package pers.brozen.anka.support.wechat.response;

import com.fasterxml.jackson.annotation.JsonAlias;
import lombok.Data;
import lombok.EqualsAndHashCode;
import pers.brozen.anka.support.wechat.annotations.WeChatApiField;

/**
 * @author Brozen
 * @date 2019/12/10 10:42 AM
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class AccessTokenGetResponse extends WeChatResponse {

    /**
     * 获取到的凭证
     */
    @WeChatApiField("access_token")
    @JsonAlias("access_token")
    private String accessToken;

    /**
     * 凭证有效时间，单位：秒。目前是7200秒之内的值。
     */
    @WeChatApiField("expires_in")
    @JsonAlias("expires_in")
    private Long expiresIn;

    /**
     * 错误码
     */
    @WeChatApiField("errcode")
    private Integer errCode;

    /**
     * 错误信息
     */
    @WeChatApiField("errmsg")
    private String errMsg;

    public interface ErrorCode {

        /**
         * 系统繁忙，此时请开发者稍候再试
         */
        int SYSTEM_ERROR = -1;

        /**
         * 请求成功
         */
        int SUCCESS = 0;

        /**
         * AppSecret 错误或者 AppSecret 不属于这个小程序，请开发者确认 AppSecret 的正确性
         */
        int SECRET_ERROR = 40001;

        /**
         * 请确保 grant_type 字段值为 client_credential
         */
        int GRANT_ERROR = 40002;

        /**
         * 不合法的 AppID，请开发者检查 AppID 的正确性，避免异常字符，注意大小写
         */
        int APPID_ERROR = 40002;

    }

}
